﻿using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.MarketingCoupon.MarketingCouponReceive;
using BCDto.TMS.RedPacket.RedPacketReceive;
using System.Collections.Generic;

namespace BCService.TMS.RedPacket.RedPacketReceive
{
    public interface IRedPacketReceiveService
    {
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="redPacketTypeId">红包类型Id</param>
        /// <param name="redPacketId">红包Id</param>
        /// <param name="userId">用户Id</param>
        /// <returns></returns>
        IEnumerable<RedPacketReceiveDto> GetList(long? redPacketTypeId, long? redPacketId, long? userId);
        /// <summary>
        /// 获取分页
        /// </summary>
        /// <param name="admin">管理员信息</param>
        /// <param name="redPacketId">红包id</param>
        /// <param name="userId">用户Id</param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        PageableList<RedPacketReceiveDto> Query(AdminDto admin ,long? redPacketId, long? userId,
            int pageIndex,int pageSize);
        /// <summary>
        /// 自动发放
        /// </summary>
        /// <param name="redPacketId">红包id</param>
        /// <param name="requestDto">分配配置</param>
        /// <param name="admin">管理员</param>
        /// <returns></returns>
        bool AutoGrant(long redPacketId, AutoGrantRequestDto requestDto, AdminDto admin);
    }
}
